{% set a_list = [] %}
{%- do a_list.append('a') %}
{%- macro c(c_list) %}
{%- do c_list.append(deferred ? 'c' : '') %}
C: {{ c_list }}.
{%- endmacro %}
{%- macro b(b_list) %}
{%- do b_list.append(deferred ? 'b' : '') %}
{{ c(b_list) }}
{%- do b_list.append(deferred ? 'B' : '') %}
B: {{ b_list }}.
{%- endmacro %}
{{ b(a_list) }}
{%- do a_list.append(deferred ? 'A' : '') %}
A: {{ a_list }}.
---
{% set a_list = [] %}
{%- do a_list.append('a') %}
{%- for i in range(1) %}
{%- set b_list = a_list %}
{%- do b_list.append('b') %}
{%- for j in range(1) %}
{%- set c_list = b_list %}
{%- if !deferred %}
{%- do c_list.append(deferred ? 'c' : '') %}
{%- else %}
{%- do c_list.append(deferred ? 'c' : '') %}
{%- endif %}
C: {{ c_list }}.
{%- endfor %}
{%- do b_list.append(deferred ? 'B' : '') %}
B: {{ b_list }}.
{%- endfor %}
{%- do a_list.append(deferred ? 'A' : '') %}
A: {{ a_list }}.
